#Include "Protheus.ch"

User Function TstIncPTol()

Local cAlias      := GetNextAlias()
Local cQuery      := ""
Local cSvcError   := "" 	// Resumo do erro
Local cSoapFCode  := "" 	// Soap Fault Code
Local cSoapFDescr := "" 	// Soap Fault Descrip
Local nRecCount   := 0
Local oWs         := WsToledoCadastroItem():New()

cQuery += " SELECT B1_COD, " + CRLF
cQuery += 	" B1_DESC," + CRLF
cQuery += 	" B1_UM," + CRLF
cQuery += 	" B1_CODBAR," + CRLF
cQuery += 	" B1_DUN14," + CRLF
cQuery += 	" B1_PESO," + CRLF
cQuery += 	" B1_PESOMIN," + CRLF
cQuery += 	" B1_PESOMAX," + CRLF
cQuery += 	" B1_VALIDA," + CRLF
cQuery += 	" B1_FORMAS" + CRLF
cQuery += " FROM " + RetSqlTab("SB1") + CRLF
cQuery += " WHERE B1_GRUPO = '3'" + CRLF
cQuery += 	" AND B1_TIPO = 'PA'" + CRLF
cQuery += 	" AND B1_COD NOT IN ('310000', '315500')" + CRLF
cQuery += 	" AND " + RetSqlFil("SB1") + CRLF
cQuery += 	" AND " + RetSqlDel("SB1") + CRLF
cQuery += " ORDER BY B1_COD"

//MemoWrite("C:\RelMicrosiga\TstIncPTol.txt", cQuery)

cQuery := ChangeQuery(cQuery)    // normaliza a consulta

DbUseArea(.T., "TOPCONN", TCGenQry( , , cQuery), cAlias, .F., .T.)    // executa a consulta

dbSelectArea(cAlias)    // seleciona o arquivo

Count To nCount         // Retorna a quantidade de itens retornados pela consulta

IF nCount == 0           // se a consulta retornou r
	Return Nil
EndIF

(cAlias)->(dbGoTop())

While (cAlias)->(!Eof())

	oWs:oWsItem:cCodigo            := (cAlias)->B1_COD
	oWs:oWsItem:cDescricao         := (cAlias)->B1_DESC
	oWs:oWsItem:cUnidadeControle   := (cAlias)->B1_UM
	oWs:oWsItem:cEAN13             := (cAlias)->B1_CODBAR
	oWs:oWsItem:cEAN14             := (cAlias)->B1_DUN14
	oWs:oWsItem:cTipo              := "1194"  // Produto Acabado
	oWs:oWsItem:nPesoMedioSugerido := (cAlias)->B1_PESO
	oWs:oWsItem:nPesoMedioEfetivo  := (cAlias)->B1_PESO
	oWs:oWsItem:nToleranciaMinima  := (cAlias)->B1_PESOMIN * (cAlias)->B1_FORMAS
	oWs:oWsItem:nToleranciaMaxima  := (cAlias)->B1_PESOMAX * (cAlias)->B1_FORMAS
	oWs:oWsItem:nValidade1         := (cAlias)->B1_VALIDA
	oWs:oWsItem:cFaixaUnidadePeso  := "1222"
	oWs:oWsItem:nPesoBrutoEstimado := 0
	oWs:oWsItem:nFormas            := (cAlias)->B1_FORMAS
	
	WSDLDbgLevel(3)

	IF !oWs:IncluiItem()
	
		cSvcError   := GetWSCError()    // Resumo do erro
		cSoapFCode  := GetWSCError(2)   // Soap Fault Code
		cSoapFDescr := GetWSCError(3)   // Soap Fault Description
		
		IF !Empty(cSoapFCode)
			ConOut("[" + DToC(Date()) + " " + Time() + "] " + cSoapFCode + " - " + cSoapFDescr)
		Else
			ConOut("[" + DToC(Date()) + " " + Time() + "] FALHA INTERNA DE EXECUCAO DO SERVICO - " + cSvcError)
		EndIF
	
	Else
	
		IF oWs:cIncluiItemResult $ "OK"
			ConOut("[" + DToC(Date()) + " " + Time() + "] ITEM INCLUIDO COM SUCESSO.")
		Else
			ConOut("[" + DToC(Date()) + " " + Time() + "] ERRO AO INCLUIR ITEM.")
		EndIF
	
	EndIF

	(cAlias)->(dbSkip())
End

Return Nil